1.1 人工智能
1.1.1 人工智能的基本概念
人工智能指的是由机器或计算机程序学习如何完成通常由人类完成的需要智能形式的任务。
智能机器可以是一个虚拟的或者物理的机器人,有自主的感知、认知、决策、学习、执行和社会协作能力,符合人类情感、伦理与道德观念。
1.1.2 人工智能涵盖的学科
- 计算机视觉:模式识别,图像处理等。感知的图像往往只占5%,提供一些蛛丝马迹;而后面的95%,包括功能、物理、因果、动机等等是要靠人的想象和推理过程来完成的。
- 自然语言理解与交流:语音识别、合成、对话等。语言产生的基础是人要寻求合作。在语言产生之前,人类就已经有了十分丰富的认知基础,也就是上一节谈的那些表达。没有这样的认知基础,语言是空洞的符号,对话也不可能发生。
- 认知与推理:包含各种物理和社会常识。当有了共同价值观的时候,就有社会道德和伦理规范,这都可以推导出来了。机器人要与人共生共存必须理解人的团体的社会道德和伦理规范。这个认识论是机器人发展的必经之道。
- 机器人学:机械、控制、设计、运动规划、任务规划等。
- 博弈与伦理:多代理人agents的交互、对抗与合作,机器人与社会融合等议题。获取、共享人类的价值观。
- 机器学习:各种统计的建模、分析工具和计算的方法。
传统人工智能领域:逻辑推理、搜索博弈、专家系统等。
人脑的功耗大约是10-25瓦。
现在的人工智能和机器人,关键问题是缺乏物理的常识和社会的常识。
1.1.3 人工智能&机器学习&深度学习之间的关系
机器学习(Machine Learning):机器学习是对能通过经验自动改进的计算机算法的研究。机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
- 与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
- 机器学习传统算法包括决策树学习、推导逻辑规划、聚类、强化学习和贝叶斯网络等等。
深度学习(Deep Learning):一种实现机器学习的技术(深度神经网络)
- “深度”指的是一个神经网络中的层的数量。浅层神经网络有一个所谓的隐藏层,而深度神经网络则不止一个隐藏层。多个隐藏层让深度神经网络能够以分层的方式学习数据的特征,因为简单特征可逐层叠加,形成更为复杂的特征。
- 深度学习是一种基于对数据进行表征学习的方法。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
任何一个模型由数据与任务来共同塑造。
复杂的算法 ≤ 简单的学习算法 + 好的训练数据。
当前的深度学习方法属于一个“大数据、小任务范式(big data for small task)”。针对某个特定的任务,如图像识别,设计一个简单的价值函数Loss function,用大量数据训练特定的模型。
1.2 机器学习
1.2.1 机器学习定义
Arthur Samuel: Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed (1959)。
Tom Mitchell:一个程序被认为能从经验E 中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E 后,经过P 评判,程序在处理T 时的性能有所提升。
1.2.2 机器学习数据集
- 训练数据集:当机器学习程序开始运行时,使用训练样本集作为算法的输人,完成算法训练。
- 测试数据集:训练完成之后输人测试样本。比较测试样本预测的目标变量值与实际样本类别之间的差别,就可以得出算法的实际精确度。
1.2.3 机器学习类型
1. 监督学习:
- 工作机制:通过学习被标识的数据集,发现数据集中输入数据与输出数据之间的对应关系;通过这种对应关系,将数据的输入映射到合适的输出。
- 常见算法:线性回归、逻辑回归、决策树、kNN、SVM。
2. 无监督学习:
- 工作机制:通过学习未被标识的数据集,发现数据集的一些内在结构或某种规律;通过这种内在结构或某种规律,将数据集自行分类,从而可以标识数据集。
- 常见算法:关联算法、聚类(k-means)、降维、推荐系统等。
3. 半监督式学习:
- 工作机制:首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。
- 特征:综合利用少量有标记的数据和大量没有标记的数据,来生成合适的分类函数。
4. 增强学习:
- 工作机制:机器被放在一个能让它通过反复试错来训练自己的环境中
- 输入数据直接反馈到模型,模型必须对此立刻作出调整。
- 不断与环境进行交互,通过试错的方式来获得最佳策略。
- 延迟奖惩的学习方式,从过去的经验中进行学习,非直接判断对错。
- 常见算法:马尔可夫决策过程、Q-Learning、时间差学习。
1.2.4 机器学习算法选择
算法是从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法
明确使用机器学习算法的目的,想要算法完成何种任务:
- 若想要预测目标变量的值,则可以选择监督学习算法:需要进一步确定目标变量类型,若目标变量是离散型,则可以选择分类器算法;若目标变量是连续型的数值,则需要选择回归算法。
- 若不是预测目标变量的值,可以选择无监督学习算法:进一步分析,若需要将数据是离散的,则使用聚类算法;若需要估计数据与每个分组的相似程度,则需要使用密度估计算法。
明确需要分析或收集的数据:对实际数据了解得越充分,越容易创建符合实际需求的应用程序
- 特征值是离散型变量还是连续型变量。
- 特征值中是否存在缺失的值,何种原因造成缺失值。
- 数据中是否存在异常值,某个特征发生的频率如何等。
1.2.5 开发机器学习应用程序的步骤
- 收集并处理数据:使用多种方法获取样本数据,分析数据确保数据集中没有垃圾数据,按算法要求将数据转换成特定的格式。
- 训练算法:将格式化数据输入到算法,从中学习数据规律。
- 测试算法:对于监督学习预测评估算法的目标变量值,对于无监督学习用其他的评测手段来检验算法的成功率。
- 使用算法:执行实际任务,以检验上述步骤是否可以在实际环境中正常工作。